package com.example.myapplication01.chapter06;

import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.GridLayout;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.Toast;

import androidx.appcompat.app.AppCompatActivity;

import com.example.myapplication01.R;
import com.example.myapplication01.chapter06.database.ShoppingDBHelper;
import com.example.myapplication01.chapter06.enity.GoodsInfo;

import java.util.List;

public class ShoppingChannelActivity extends AppCompatActivity implements View.OnClickListener{
    // 声明一个商品数据库的帮助器对象
    private ShoppingDBHelper mDBHelper;
    private GridLayout gl_channel;
    TextView tv_count;


    @Override
    protected void onResume() {
        super.onResume();
        // 查询购物车商品总数，并展示
        showCartInfoTotal();
    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_shopping_channel);
        TextView tv_title = findViewById(R.id.tv_title);
        tv_title.setText("手机商场");

        tv_count=findViewById(R.id.tv_count);
        TextView gl_channel=findViewById(R.id.gl_channel);
//        返回图片按钮
        findViewById(R.id.iv_back).setOnClickListener(this);
//        购物车按钮
        findViewById(R.id.iv_cart).setOnClickListener(this);

        // 从数据库查询出商品信息，并展示
        showGoods();
    }

    private void showGoods() {
//          // 商品条目是一个线性布局，设置布局的宽度为屏幕的一半
        int screenWidth=getResources().getDisplayMetrics().widthPixels;
        LinearLayout.LayoutParams params=new LinearLayout.LayoutParams(screenWidth/2, ViewGroup.LayoutParams.WRAP_CONTENT);
        // 查询商品数据库中的所有商品记录
        List<GoodsInfo> list=mDBHelper.queryAllGoodsInfo();
        // 移除下面的所有子视图
        gl_channel.removeAllViews();
        for(GoodsInfo info:list){
            // 获取布局文件item_goods.xml的根视图
            View view = LayoutInflater.from(this).inflate(R.layout.item_goods, null);
            ImageView iv_thumb=view.findViewById(R.id.iv_thumb);//图片
            TextView tv_name=view.findViewById(R.id.tv_name);//名称
            TextView tv_price=view.findViewById(R.id.tv_price);//价格
            Button btn_add=view.findViewById(R.id.btn_add);//添加到购物车按钮

            // 给控件设置值
            iv_thumb.setImageURI(Uri.parse(info.picPath));
            tv_name.setText(info.name);
            tv_price.setText((int) info.price);

            // 添加到购物车
            btn_add.setOnClickListener(v->{
                addToCart(info.id,info.name);
            });
            // 点击商品图片，跳转到商品详情页面
            gl_channel.addView(view,params);
        }
    }

    private void addToCart(int goodsId, String goodsName) {
        // 购物车商品数量+1
        int count=MyApplication.getInstance().goodsCount++;
        tv_count.setText(count);
        mDBHelper.insertCartInfo(goodsId);
        Toast.makeText(this,"已添加"+goodsName+"到购物车中", Toast.LENGTH_SHORT);
    }
    // 查询购物车商品总数，并展示
    private void showCartInfoTotal() {
        int count = mDBHelper.countCartInfo();
        MyApplication.getInstance().goodsCount = count;
        tv_count.setText(String.valueOf(count));
    }
    @Override
    public void onClick(View v) {
        // 点击了返回图标，关闭当前页面
        if(v.getId()==R.id.iv_back){
           finish();
        }
        // 点击了购物车图标
        // 从商场页面跳到购物车页面
        if(v.getId()==R.id.iv_cart){
            Intent intent=new Intent(this,ShoppingCartActivity.class);
            // 设置启动标志，避免多次返回同一页面的
            intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
            startActivity(intent);
       }
    }
}